"""
OOP 面向对象编程

过程:
过程类似于函数，只能执行，没有返回结果
函数能返回结果

对象：
将不同的方法封装在对象内部
简化主程序
为复杂项目开发，提供固定套路


"""

"""
核心概念:
类 对象
类：
对一群具有相同特征或行为的事物的统称，
类是抽象的，不能直接使用，作用是用来创建对象
特征被称为属性
行为被称为方法


对象：
对象是由类创建出的一个具体存在，可以直接使用
由哪一个类创建出来的对象，就拥有哪一个类中的属性和方法

开发中，现有类，再有对象  类--->对象


类可以看做图纸，对象可以看做图纸制造出的产品

"""


"""
类是一个模板
类只有一个，一个类可以创建多个对象
不同的对象之间，属性可能不同

类中定义的属性和方法，对象中就会拥有该属性和方法，不能多也不能少

"""



"""
类的设计

类的三要素：
类名 这类事物的名字
属性 这类事物具有的特征 例如：颜色 大小
方法 这类事物具有的行为 例如：输出 输入 跑 跳

类名满足驼峰命名法
"""


"""
类名 类名需要有意义

属性 对对象的特征描述

方法 对行为的描述

"""


#小明18岁 身高175，会跑，走，跳
#小红17岁 身高175，会走，跳，吃

"""
创建“人”类
属性是年龄和身高
方法 跑跳吃走

对象是小明，小红

注:需求中没有提出的属性和方法，在设计中不需要考虑
"""

"""
面向对象基本语法

dir内置函数
dir(变量名/函数名) 查看这个对象所有的属性与方法
返回一个列表
类似于: __方法名称__ 这样的方法是python对象中内置的方法
"""

#内置函数举例
# def add():
#     """这是一个add函数"""
#     print("3+5")
#
# print(dir(add))#输出内置函数列表
# a = add.__doc__#doc可以拿到这个方法内的文档说明
# print(a)

"""
常用内置方法
__new__ 创建对象时会被自动调用
__init__ 对象被初始化时会被自动调用
__del__ 对象被从内存中销毁前，会被自动调用
__str__ 返回对象的描述信息 print函数输出使用
"""

